# LuckPay Web Manage System
#
# Copyright (c) 2016 Lucky Byte, Inc.
#
$ ->
    form = $('form.main')
    form.form
        inline : true,
        fields :
            loginname : [ 'minLength[4]', 'regExp[/^[0-9a-zA-Z]+$/]' ],
            password  : 'minLength[6]',
            password2 : 'match[password]',
            realname  : 'empty',
            gender    : 'empty',
            birthday  : 'empty',
            mobile    : [ 'empty', 'integer[..]' ],
            email     : [ 'empty', 'email' ],
            dept      : 'empty',

    # 快捷菜单下拉控件改变事件
    form.find('.dropdown').dropdown
        onChange: (value, text, $selection) ->
            # 设置标题的为选择的菜单标题
            title_item = $(this).find('select').attr('name') + "_title"
            arr = text.split("—")
            $("input[name=#{title_item}]").val arr[arr.length - 1]

    # 恢复界面上快捷菜单的值
    shortcuts = form.form('get value', 'shortcuts')
    if shortcuts
        try
            shortcuts = JSON.parse(shortcuts)
            for shortcut, i in shortcuts
                $("select[name=shortcut#{i + 1}]").parent('.dropdown')
                    .dropdown('set selected', shortcut.href)
                $("input[name=shortcut#{i + 1}_title]").val(shortcut.title)
        catch err
            alert '用户的快捷菜单配置有误，请重新配置!'

    # 如果不修改用户密码，则使用一个特殊的密码值
    form.find('input[type="password"]').val("it's not a password")
    form.find('a#old_password').click (evt) ->
        form.find('input[type="password"]').val("it's not a password")
        evt.preventDefault()

    # 提交前处理
    form.submit (evt) ->
        # 格式化选择的快捷菜单为 JSON 字符串上传
        items = []
        for i in [1..6]
            title = $("input[name=shortcut#{i}_title]").val()
            href  = $("select[name=shortcut#{i}]").val()
            if title.length > 0 and href.length > 0
                items.push title: title, href: href
        $(this).form 'set value', 'shortcuts', JSON.stringify(items)

        # 如果用户密码为特殊值，则清空后上传
        passwd = $(this).form 'get value', 'password'
        if passwd == "it's not a password"
            $(this).form 'set value', 'password', ''
